package model.carrerasYPlanes;

import java.util.ArrayList;
import java.util.List;

import model.alumnos.AlumnoEnCarrera;


public class Carrera {
	
	private String nombre;
	private List<PlanDeEstudio> planDeEstudios;
	private PlanDeEstudio planActual;
	
	public Carrera(String nombre){
		super();
		this.nombre = nombre;
		this.planDeEstudios = new ArrayList<PlanDeEstudio>();
	}
	
	/**
	 * Devuelve una lista de alumnos de todos los planes de la carrera
	 * 
	 * @return
	 */
	public List<AlumnoEnCarrera> getAlumnosInscriptos(){
		List<AlumnoEnCarrera> alumnos = new ArrayList<AlumnoEnCarrera>();
		for (PlanDeEstudio plan : this.getPlanDeEstudios()) {
			alumnos.addAll(plan.getAlumnos());
		}
		return alumnos;
	}
	
	public void agregarPlanDeEstudio(PlanDeEstudio plan){
		if(!this.planDeEstudios.contains(plan)){
			this.planDeEstudios.add(plan);
			if(this.planActual == null){
				this.setPlanActual(plan);
			}
		}
	}
	
	//********************
	// GETTERS Y SETTERS
	//********************
	
	public PlanDeEstudio getPlanActual() {
		return planActual;
	}

	public void setPlanActual(PlanDeEstudio planActual) {
		this.planActual = planActual;
		if(!this.planDeEstudios.contains(planActual)){
			this.planDeEstudios.add(planActual);
		}
	}
	
	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public List<PlanDeEstudio> getPlanDeEstudios() {
		return planDeEstudios;
	}

	public void setPlanDeEstudios(List<PlanDeEstudio> planDeEstudios) {
		this.planDeEstudios = planDeEstudios;
	}
}
